Rust and the importance of memory safe systems programming languages
نویسنده
چکیده
1 SUMMARY As technology has become more and more integrated in our lives, it is becoming more and more important to be able to trust in the security of the systems we use every day. Just like you would not trust a bank with no vault or want to store your mail in an unlocked room, it is of utmost importance to ensure that our technology is also as secure as possible. In this report, I will attempt to demonstrate the importance of memory safe systems programming languages by showing that memory safe languages are the best defense against the most critical security exploits. First, I will begin by introducing memory safety and showing how memory safety and security are intimately linked. Next, I will examine in detail some well-known examples of memory related exploits in order to better understand how to defend against such exploits. Then, I will examine the status quo of defenses against such exploits at the platform level, runtime level and language level. Finally, I will explore how Rust is a unique systems programming language because it guarantees both memory safety and full control. Through this research, I have determined that bringing memory safety to systems programming languages is the best defense against the most important security exploits. Although there is still merit to platform level and runtime level defenses, these will inevitably remain in a constant state of war between attacker and defender because they do not address the fundamental problem of being able to write insecure programs. Rust is an example of such a memory safe programming language that enforces safety and allows for full control and will therefore be instrumental in creating a new class of exploit resistant programs. I hope that this report will demonstrate that it is very di�cult to write vulnerability free programs in memory unsafe languages like C and C++ and encourage more of a move towards modernizing the systems programming landscape.
منابع مشابه
Implementation and Exploration of Rust-based Graph Library
Rust is a safe systems programming language. It introduces the concept of ownership, used formemorymanagement to prevent segment fault, resulting from improper memory manipulation. However, this mechanism to guarantee memory safety may bring about obstacles for usage of shared memory resources. Graph is such an example with shared nodes and edges mutually connected to each other. In this report...
متن کاملRust-Bio: a fast and safe bioinformatics library
SUMMARY We present Rust-Bio, the first general purpose bioinformatics library for the innovative Rust programming language. Rust-Bio leverages the unique combination of speed, memory safety and high-level syntax offered by Rust to provide a fast and safe set of bioinformatics algorithms and data structures with a focus on sequence analysis. AVAILABILITY AND IMPLEMENTATION Rust-Bio is availabl...
متن کاملMemory Management and Efficient Graph Processing in Rust
Rust is a systems programming language designed to have memory-safe abstractions, but not sacrifice performance in the process (as many compiled and interpreted programming languages do). In this project, we wanted to focus on how the language allowed us to build a performant graph library comparable to one implemented in any low-level programming language, but also allowed us to do so in a rel...
متن کاملUtilizing Rust Programming Language for EFI-Based Bootloader Design
Rust, as being a systems programming language, offers memory safety with zero cost and without any runtime penalty unlike other languages like C, C++ or Cyclone. System programming languages are mainly used for low level tasks such as design of operating system components, web browsers, game engines and time critical missions like signal processing. Main disadvantages of the existing systems la...
متن کاملExperience Report: Developing the Servo Web Browser Engine using Rust
All modern web browsers — Internet Explorer, Firefox, Chrome, Opera, and Safari — have a core rendering engine written in C++. This language choice was made because it affords the systems programmer complete control of the underlying hardware features and memory in use, and it provides a transparent compilation model. Servo is a project started at Mozilla Research to build a new web browser eng...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2017